AWS SDK for Python (Boto3) で Amazon Translateを使ってみた
AWSの翻訳サービス Amazon Translateが日本語に対応しましたのでPython (Boto3)を使用して使ってみました。サンプルコードをご紹介しますのでpythonを使用している方は試してみてください。
環境
$ pip install -U boto3 $ pip list | grep boto3 boto3 1.7.82
サンプルコード
import boto3 # constant REGION = 'us-west-2' SRC_LANG = 'en' TRG_LANG = 'ja' def get_translate_text(text): translate = boto3.client('translate', region_name=REGION) response = translate.translate_text( Text=text, SourceLanguageCode=SRC_LANG, TargetLanguageCode=TRG_LANG ) return response def main(): # Text to translate text = """Natural and accurate language translation""" # From Japanese to English # while len(text.encode('utf-8')) > 5000: # text = text[:-1] # From English to Japanese # while len(text) > 5000: # text = text[:-1] result = get_translate_text(text) print(result.get('TranslatedText')) if __name__ == '__main__': main()
ドキュメントに記載されていますが、テキスト文字列は5,000バイトです。その為、5,000バイトを超えるとエラーが発生します。今回は長文を翻訳する想定ではないので、エラー回避のためにwhile
でバイト数を削ることにしました。
Amazon Translate | TranslateText より
The text to translate. The text string can be a maximum of 5,000 bytes long. Depending on your character set, this may be fewer than 5,000 characters.
英語から日本語の場合
while len(text) > 5000: text = text[:-1]
日本語から英語の場合
while len(text.encode('utf-8')) > 5000: text = text[:-1]
実行
日本語から英語
text = """自然で正確な言語翻訳"""
実行結果
$ python amazon-translate.py Natural and accurate language translation
英語から日本語
text = """Natural and accurate language translation"""
実行結果
$ python amazon-translate.py 自然で正確な言語翻訳
まとめ
英語から日本語、日本語から英語と翻訳が可能になったのでAmazon Translateを使用してみました。APIを使用して簡単に翻訳することが可能ですので是非試してみてください。